package com.wksc.framework.impexp.constants;

import com.wksc.framework.impexp.util.Cfg;
import com.wksc.framework.impexp.util.ClassFactory;
import com.wksc.framework.impexp.util.SysParam;

/**
 * 导入导出中的常量
 * 
 * @author QinJinxue
 * @daDec 20, 2010
 * @since 1.0
 */
public interface IEConstants {
	/** 当前系统路径的分隔符 */
	String SEPARATOR = SysParam.getSeparator();

	/** 导出 单个文件的最大行数 */
	int EXP_MAX_LINE = SysParam.getExportMaxLine();

	/** 允许添加的最大任务数 */
	int MAX_JOBS = SysParam.getMaxJobs();

	/**
	 * @Fields DEAD_INTERVAL : 30秒以前的都是死任务
	 */
	String DEAD_INTERVAL = "30/24/3600"; //30秒

	/** 导出允许最大文件数 */
	int EXP_MAX_FILES = SysParam.getExpMaxFiles();

	/** 导入每次处理的行数 */
	int IMP_ONCE_PRELINE = SysParam.getImpOnceProLine();

	/** 清理文件的天数 */
	int CLEAN_DAYS = SysParam.getCleanDays();

	/** 执行任务间隔时间 */
	int THREAD_SLEEP = SysParam.getThreadSleep();

	/** 导入导出同时运行的线程数 */
	int THREAD_NUM = SysParam.getThreadNum();

	//	/** 导入文件保存的位置 */
	//	String IMP_PATH = Cfg.SYS_PATH + SEPARATOR + "files" + SEPARATOR + "imp";
	//	/** 文件临时保存路径 */
	//	String TEM_PATH = Cfg.SYS_PATH + SEPARATOR + "files" + SEPARATOR + "tem";
	//	/** 导出文件路径 */
	//	String EXP_PATH = Cfg.SYS_PATH + SEPARATOR + "files" + SEPARATOR + "exp";
	//	/** 导入写错误文件的位置 */
	//	String ERROR_PATH = Cfg.SYS_PATH + SEPARATOR + "files" + SEPARATOR
	//			+ "error";
	/*
	 * //nfs如果写文件失败,写到本地文件夹中,会出现有时候可以下载有时候不能下载的问题.
	 * //但是如果采用先将文件保存到本地,再将其copy到nfs中,这种问题会更严重,所以采用直接将文件写到nfs文件夹的方式
	 * String CFG_IMP_PATH = Cfg.getInstance().getCfgPath() + SEPARATOR +
	 * "files"
	 * + SEPARATOR + "imp";
	 * String CFG_TEM_PATH = Cfg.getInstance().getCfgPath() + SEPARATOR +
	 * "files"
	 * + SEPARATOR + "tem";
	 * String CFG_EXP_PATH = Cfg.getInstance().getCfgPath() + SEPARATOR +
	 * "files"
	 * + SEPARATOR + "exp";
	 * String CFG_ERROR_PATH = Cfg.getInstance().getCfgPath() + SEPARATOR +
	 * "files"
	 * + SEPARATOR + "error";
	 */
	String IMP_PATH = Cfg.getInstance().getCfgPath() + SEPARATOR + "files"
			+ SEPARATOR + "imp";
	String TEM_PATH = Cfg.getInstance().getCfgPath() + SEPARATOR + "files"
			+ SEPARATOR + "tem";
	String EXP_PATH = Cfg.getInstance().getCfgPath() + SEPARATOR + "files"
			+ SEPARATOR + "exp";
	String ERROR_PATH = Cfg.getInstance().getCfgPath() + SEPARATOR + "files"
			+ SEPARATOR + "error";

	/** 导入完全成功的提示 */
	String IMPORT_SUCCESS_TITLE[] = { "", "",
			ClassFactory.getI18n().getSendCommandInfo() }; //text:发送命令成功,

	/** 导出模式 */
	int EXP_MODE = SysParam.getExpModeInt();

	/** 导入模式 */
	int IMP_MODE = SysParam.getImpModeInt();

	/** 变更 */
	int ST_ALTER = 1;
	/** 入库 */
	int ST_DB = 0;
	/** 指令 */
	int ST_ORDER = 2;

	/**
	 * 业务处理返回结果
	 * 0 - 无操作
	 * 1 - 发送成功
	 * 2 - 发送失败
	 * */
	/** 无操作 */
	int NO_OPS = 0;
	/** 成功 */
	int SUCCEED = 1;
	/** 失败 */
	int FAIL = 2;

	/**
	 * TaskManage.java中addTask()使用到的返回值
	 */
	int ADD_TASK_SUCC = 1; //添加任务成功
	int TASK_LIST_FULL = 2; //任务队列已满
	int ADD_TASK_FAIL = 3; //添加任务失败

	//单个excel文件最大支持数据条数
	int MAX_EXCEL_LINE = 65530;

	/**
	 * 导入导出结果是否有错误文件生成
	 * -1表示没有错误文件生成
	 */
	int ALL_CORRECT = -1;

	/**
	 * 表示导入结果有错误文件生成
	 * 1表示有错误文件生成
	 */
	int HAS_WRONG_FILE = 1;

	/** 表示导出取消后有导出文件生成 */
	int HAS_EXPORT_FILE = 1;

	/** 1分钟的毫秒数 */
	long MILLIS_PER_MIN = 1000 * 60;
	/** 1小时的毫秒数 */
	long MILLIS_PER_HOUR = MILLIS_PER_MIN * 60;
	/** 1天地毫秒数 */
	long MILLIS_PER_DAY = MILLIS_PER_HOUR * 24;

	String UTF_8 = "UTF-8";
	String UTF_16LE = "UTF-16LE";
}
